﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ED_Nivelacion.Datos;
using ED_Nivelacion.Negocios;
using System.Data.OleDb;
using System.Data;

namespace ED_Nivelacion.Negocios
{
    public class Persona_C
    {
        ED_NivelacionEntities _objEntity = new ED_NivelacionEntities();

        public List<Persona> ObtenerPersona()
        {
            List<Persona> ListaPersona = new List<Persona>();
            try
            {
                foreach (var item in _objEntity.SP_ConsultarPersona())
                {
                    ListaPersona.Add(new Persona { idPersona = item.idPersona, Nombre = item.Nombre, Apellido = item.Apellido, Cedula = item.Cedula, idUsuario = item.idUsuario, Clave = item.Clave });
                }

                return ListaPersona;
            }
            catch (Exception)
            {
                return ListaPersona;
            }
        }

        public List<Persona> ObtenerPersonaAdmin()
        {
            List<Persona> ListaPersona = new List<Persona>();
            try
            {
                foreach (var item in _objEntity.SP_ConsultarPersona().Where(c => c.idUsuario == 1))
                {
                    ListaPersona.Add(new Persona { idPersona = item.idPersona, Nombre = item.Nombre, Apellido = item.Apellido, Cedula = item.Cedula, idUsuario = item.idUsuario, Clave = item.Clave });
                }

                return ListaPersona;
            }
            catch (Exception)
            {
                return ListaPersona;
            }
        }

        //public List<Persona> FiltrarPersona(string _Cedula)
        //{
        //    List<Persona> ListaPersona = new List<Persona>();

        //    var item = _objEntity.SP_FiltrarPersonaCedula(_Cedula).FirstOrDefault();
           
        //    ListaPersona.Add(new Persona { idPersona = item.idPersona, Nombre = item.Nombre, Apellido = item.Apellido, Cedula = item.Cedula, idUsuario = item.idUsuario, Clave = item.Clave });
           

        //    return ListaPersona;
        //}

        public string AgregarPersona(Persona _obj)
        {
            string msm = "OK";
            var n = _objEntity.SP_ConsultarPersona().Where(C => C.Cedula == _obj.Cedula);

           // var x = n.Count();

            try
            {
               //string n = "";
                //n = _objEntity.SP_ConsultarPersona().Where(C => C.Cedula == _obj.Cedula).FirstOrDefault().Cedula;
                if (n.Count() == 0) 
                
                {
                    _objEntity.SP_InsertarPersona(_obj.idUsuario, _obj.Nombre, _obj.Apellido, _obj.Cedula, _obj.Clave);
                }
                else
                {
                    msm = "Ingresado";
                }
                
            }
            catch (Exception e)
            {

                msm = e.Message;
            }

            return msm;

        }

        public string EditarPersona(Persona _obj)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_ActualizarPersona(_obj.idPersona, _obj.Nombre, _obj.Apellido, _obj.Cedula, _obj.idUsuario, _obj.Clave);
            }
            catch (Exception e)
            {

                msm = e.Message;
            }

            return msm;
        }

        public string EliminarPersona(int _idPersona)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_EliminarPersona(_idPersona);
            }
            catch (Exception e)
            {

                msm = e.Message;
            }

            return msm;
        }

        public string item { get; set; }

        public static List<Persona> selectExcel(string Arch, string Hoja)
        {


            OleDbConnection Conex = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Arch + ";Extended Properties=Excel 12.0;");
            OleDbCommand CmdOle = new OleDbCommand();

            CmdOle.Connection = Conex;
            CmdOle.CommandType = CommandType.Text;
            CmdOle.CommandText = "SELECT * FROM [" + Hoja + "$A1:H100]";

            OleDbDataAdapter AdaptadorOle = new OleDbDataAdapter(CmdOle.CommandText, Conex);
            //List<Notas> lista = new List<Notas>();
            DataTable dt = new DataTable();

            AdaptadorOle.Fill(dt);

            List<Persona> _lista = new List<Persona>();
            foreach (DataRow dr in dt.Rows)
            {
                if (dr["NOMBRES"].ToString() != "")
                {

                    Persona _obj = new Persona();

                    _obj.Nombre = dr["NOMBRES"].ToString();
                    _obj.Apellido = dr["APELLIDOS"].ToString();
                    _obj.Cedula = dr["CEDULA"].ToString();


                    _lista.Add(_obj);
                }
            }

            dt.Clear();

            return _lista;


        }
    }
}
